package cn.bluethink.eguan.model.trader;

import java.util.Date;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import cn.bluethink.eguan.model.core.EgBag;
import cn.bluethink.eguan.model.core.EgOType;
import cn.bluethink.eguan.model.core.EgObject;
import cn.bluethink.eguan.utils.DateTimeSerializer;

/**
 * @title 神秘商人
 * @Copyright 苏州中科蓝迪公司所有(c)2016-2021
 * @version 0.1
 *
 * @note 修订历史： （1）liuxn于2018年8月14日构建初始版本0.1
 *       （2）giszyj@126.com于2018年10月06日增加交换包裹和结束时间
 */
public class EgTrader extends EgObject {
    
	/**
	 * 神秘商人的状态
	 * 包括：未开始、进行中、关闭
	 */
    private Integer status;
    
    /**
     * 神秘商人开始时间
     */
    @JsonSerialize(using = DateTimeSerializer.class)
    private Date btime;
    
	/**
	 * 神秘商人结束时间
	 */
    @JsonSerialize(using = DateTimeSerializer.class)
	private Date etime;

	/**
	 * 用于交换商品的包裹
	 */
	private EgBag exbag;
	
	/**
     * 所拥有的商品总价格
     */
    private Integer totalBt;
    
	/**
	 * 总共交换了多少bt币
	 */
	private Integer exbt;
	
	/**
	 * 扮演者
	 */
	private EgObject actor;
	
	/**
     * 创建者
     */
    private EgObject cuser;
    
	
	/**
	 * 神秘商人更新时间，WHEN
	 */
    @JsonSerialize(using = DateTimeSerializer.class)
	private Date utime;
    
    /**
     * 神秘商人隶属的位置（为0表示江湖）
     */
    private Long fid;

	public EgTrader() {
		setType(new EgOType(EgOType.TRADER,null));
	}

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getBtime() {
        return btime;
    }

    public void setBtime(Date btime) {
        this.btime = btime;
    }

    public Date getEtime() {
        return etime;
    }

    public void setEtime(Date etime) {
        this.etime = etime;
    }

    public EgBag getExbag() {
        return exbag;
    }

    public void setExbag(EgBag exbag) {
        this.exbag = exbag;
    }

    public Integer getTotalBt() {
        return totalBt;
    }

    public void setTotalBt(Integer totalBt) {
        this.totalBt = totalBt;
    }

    public Integer getExbt() {
        return exbt;
    }

    public void setExbt(Integer exbt) {
        this.exbt = exbt;
    }

    public EgObject getActor() {
        return actor;
    }

    public void setActor(EgObject actor) {
        this.actor = actor;
    }

    public EgObject getCuser() {
        return cuser;
    }

    public void setCuser(EgObject cuser) {
        this.cuser = cuser;
    }

    public Date getUtime() {
        return utime;
    }

    public void setUtime(Date utime) {
        this.utime = utime;
    }

    public Long getFid() {
        return fid;
    }

    public void setFid(Long fid) {
        this.fid = fid;
    }

}
